﻿using System;
using System.Collections.Generic;
using Volo.Abp.Application.Dtos;

namespace Infrastructure.ExternalService.Core.Product
{
    /// <summary>
    /// 学历商品信息
    /// </summary>
    public class SkuInfo : EntityDto
    {
        /// <summary>
        /// 
        /// </summary>
        public string ProductName { get; set; }

        /// <summary>
        /// 商品id
        /// </summary>
        public long ProductId { get; set; }

        /// <summary>
        /// 商品类型id
        /// </summary>
        public string ProCategoryId { get; set; }

        /// <summary>
        /// 商品类型Name
        /// </summary>
        public string ProCategoryName { get; set; }


        /// <summary>
        /// 学历模式code
        /// </summary>
        public virtual string EduMode { get; set; }

        /// <summary>
        /// 缴费模式
        /// </summary>
        public string PayModel { get; set; }

        /// <summary>
        /// 学历模式Name
        /// </summary>
        public virtual string EduModeName { get; set; }

        /// <summary>
        /// 预计出款时间
        /// </summary>
        public DateTime? PlanCKTime { get; set; }

        /// <summary>
        /// 层次Code
        /// </summary>
        public virtual string EduLevelType { get; set; }

        /// <summary>
        /// 层次Name
        /// </summary>
        public string EduLevelTypeName { get; set; }

        /// <summary>
        /// 专业类别Id
        /// </summary>
        public long MajorTypeId { get; set; }


        /// <summary>
        /// 专业类别名称
        /// </summary>
        public string MajorTypeName { get; set; }

        /// <summary>
        /// 专业id
        /// </summary>
        public long MajorId { get; set; }

        /// <summary>
        /// 专业Name
        /// </summary>
        public string MajorName { get; set; }

        /// <summary>
        /// 考点市code
        /// </summary>
        public string ExamCityId { get; set; }

        /// <summary>
        /// 考点市name
        /// </summary>
        public string ExamCityName { get; set; }

        /// <summary>
        /// 考点省code
        /// </summary>
        public string ExamProvId { get; set; }

        /// <summary>
        /// 考点省name
        /// </summary>
        public string ExamProvName { get; set; }

        /// <summary>
        /// 所属批次code
        /// </summary>
        public string EduBatchCode { get; set; }

        /// <summary>
        /// 批次名称
        /// </summary>
        public string EduBatchName { get; set; }

        /// <summary>
        /// 关联班级id（逗号分割）
        /// </summary>
        public string RelationClassIds { get; set; }

        /// <summary>
        /// 考前辅导费（单位：分）
        /// </summary>
        public long PreExamTutonFee { get; set; }

        /// <summary>
        /// 咨询服务费（单位：分）
        /// </summary>
        public long ConsultingFee { get; set; }

        /// <summary>
        /// 实际学费（单位：分）
        /// </summary>
        public long FactTuition { get; set; }


        /// <summary>
        /// 预收学费（单位：分）
        /// </summary>
        public long PreTuition { get; set; }



        /// <summary>
        /// 预收杂费
        /// </summary>
        public long? PreMixFee { get; set; }

        /// <summary>
        /// 实际杂费
        /// </summary>
        public long FactMixFee { get; set; }


        /// <summary>
        /// 预收成本
        /// </summary>
        public long? PreCost { get; set; }

        /// <summary>
        /// 实际成本
        /// </summary>
        public long? FactCost { get; set; }


        /// <summary>
        /// 底线价格（单位：分）
        /// </summary>
        public long BaseLinePrice { get; set; }

        /// <summary>
        /// 招生价格（单位：分）
        /// </summary>
        public long RecruitStudentPrice { get; set; }

        /// <summary>
        /// 商品相关的材料(身份证, 准考证等等)
        /// </summary>
        public List<string> ProductMaterials { get; set; }

        public string College { get; set; }
        public long ChannelId { get; set; }
        public string EduPeriods { get; set; }
        public string EduYears { get; set; }

        /// <summary>
        /// 结算方式
        /// </summary>
        public string SettleWay { get; set; }

        /// <summary>
        /// 售价
        /// </summary>
        public long Amount { get; set; }

        /// <summary>
        /// 商品所属主体
        /// </summary>
        public string ProBrandCompany { get; set; }

        /// <summary>
        /// 学历方式（脱产、业余、函授）
        /// </summary>
        public string LearnWay { get; set; }

        /// <summary>
        /// 电子凭证Id
        /// </summary>
        public long EcId { get; set; }

        /// <summary>
        /// 提成类型-数据字典 PercentType
        /// </summary>
        public string PercentType { get; set; }

        /// <summary>
        /// 是否扣学杂费
        /// </summary>
        public string DeductMixFeeStatus { get; set; }

        /// <summary>
        /// 提成方式    数据字典  PercentWay
        /// </summary>
        public string PercentWay { get; set; }

        /// <summary>
        /// 提成标准 数据字典  PercentValue
        /// </summary>
        public string PercentValue { get; set; }


        /// <summary>
        /// 预收标准学费明细
        /// </summary>

        public List<SkuPreTuitionDetail> PreTuitionDetails { get; set; }

        /// <summary>
        /// 商品杂费
        /// </summary>
        public List<MixFee> MixFees { get; set; }
    }
    /// <summary>
    /// 杂费
    /// </summary>
    public class MixFee
    {
        /// <summary>
        /// 杂费类型
        /// </summary>
        public string Code { get; set; }

        /// <summary>
        /// 杂费类型名称
        /// </summary>
        public string Name { get; set; }


        public string FeeType { get; set; }
        /// <summary>
        /// 杂费金额
        /// </summary>
        public long Price { get; set; }

        public List<MixFeeDetail> MixFeeDetailDtos { get; set; }
    }

    public class MixFeeDetail
    {

        /// <summary>
        /// 明细 次序
        /// </summary>
        public string Code { get; set; }

        /// <summary>
        /// 明细次序Name
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 金额
        /// </summary>
        public long Amount { get; set; }

    }
    /// <summary>
    /// 预收标准学费明细
    /// </summary>
    public class SkuPreTuitionDetail
    {

        /// <summary>
        /// Id
        /// </summary>
        public long Id { get; set; }

        /// <summary>
        /// 明细CODE
        /// </summary>
        public string Code { get; set; }

        /// <summary>
        /// 明细Name
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 明细金额
        /// </summary>
        public long Amount { get; set; }
    }
}